package com.framework.mapper.common;

import com.framework.model.common.vo.TypeVo;
import org.springframework.stereotype.Repository;
import java.util.List;

/**
 * @author 龘鵺
 * @version 1.0
 * @className com.framework.mapper.common
 * @description 公共类型mapper接口类
 * @datetime 2024-04-20 14:57:12
 */
@Repository("typeMapper")
public interface TypeMapper {
    /**
     * @param id 编号
     * @return com.framework.model.common.vo.TypeVo
     * @author 龘鵺
     * @title 公共根据编号查询数据
     * @description 公共根据编号查询数据
     * @datetime 2024-04-20 14:57:12
     */
    TypeVo selectByPrimaryKey(Long id);

    /**
     * @param row 1 公共类型类
     * @return int 0不存在， 大于等于1存在
     * @title 公共根据条件查询是否重复存在
     * @description 公共根据条件查询是否重复存在
     * @author 龘鵺
     * @datetime 2019-01-09 11:11:11
     */
    int isExist(TypeVo row);

    /**
     * @param row 公共类型类
     * @return int
     * @author 龘鵺
     * @title 公共非空字段验证添加
     * @description 公共非空字段验证添加
     * @datetime 2024-04-20 14:57:12
     */
    int insertSelective(TypeVo row);

    /**
     * @param list 集合对象
     * @return int
     * @author 龘鵺
     * @title 批量添加
     * @description 批量添加
     * @datetime 2024-04-20 14:57:12
     */
    int insertList(List<TypeVo> list);

    /**
     * @param row 公共类型类
     * @return int
     * @author 龘鵺
     * @title 公共根据编号非空字段验证修改
     * @description 公共根据编号非空字段验证修改
     * @datetime 2024-04-20 14:57:12
     */
    int updateByPrimaryKeySelective(TypeVo row);

    /**
     * @param row 公共类型类
     * @return int
     * @author 龘鵺
     * @title 根据编号和上级类型代码修改子项信息
     * @description 根据编号和上级类型代码修改子项信息
     * @datetime 2024-04-20 14:57:12
     */
    int updateByIdAndParentTypeCode(TypeVo row);

    /**
     * @param row 公共类型类
     * @return int
     * @author 龘鵺
     * @title 根据上级类型代码修改子项的上级类型代码
     * @description 根据上级类型代码修改子项的上级类型代码
     * @datetime 2024-04-20 14:57:12
     */
    int updateByParentTypeCode(TypeVo row);

    /**
     * @param list 集合对象
     * @return int
     * @author 龘鵺
     * @title 公共根据编号非空字段验证批量修改
     * @description 公共根据编号非空字段验证批量修改
     * @datetime 2024-04-20 14:57:12
     */
    int updateList(List<TypeVo> list);

    /**
     * @param row 公共类型类
     * @return int
     * @author 龘鵺
     * @title 公共根据条件逻辑删除数据
     * @description 公共根据条件逻辑删除数据
     * @datetime 2024-04-20 14:57:12
     */
    int delete(TypeVo row);

    /**
     * @param row 1 公共类型类
     * @return int 大于等于1成功， 0失败
     * @title 公共根据条件逻辑删除数据
     * @description 公共根据条件逻辑删除数据
     * @author 龘鵺
     * @datetime 2019-01-09 11:11:11
     */
    int deleteList(TypeVo row);

    /**
     * @param row 公共类型类
     * @return com.framework.model.common.vo.TypeVo
     * @author 龘鵺
     * @title 公共根据条件查询数据
     * @description 公共根据条件查询数据
     * @datetime 2024-04-20 14:57:12
     */
    TypeVo selectByParam(TypeVo row);

    /**
     * @param row 公共类型类
     * @return java.util.List<com.framework.model.common.vo.TypeVo>
     * @author 龘鵺
     * @title 公共根据条件分页查询
     * @description 公共根据条件分页查询
     * @datetime 2024-04-20 14:57:12
     */
    List<TypeVo> findPageList(TypeVo row);

    /**
     * @param row 公共类型类
     * @return int
     * @author 龘鵺
     * @title 公共根据条件分页查询总数
     * @description 公共根据条件分页查询总数
     * @datetime 2024-04-20 14:57:12
     */
    int findPageListCount(TypeVo row);

    /**
     * @param row 公共类型类
     * @return java.util.List<com.framework.model.common.vo.TypeVo>
     * @author 龘鵺
     * @title 公共根据条件查询集合
     * @description 公共根据条件查询集合
     * @datetime 2024-04-20 14:57:12
     */
    List<TypeVo> findByList(TypeVo row);

    /**
     * @param row 公共类型类
     * @return java.util.List<com.framework.model.common.vo.TypeVo>
     * @author 龘鵺
     * @title 根据父类代码查询
     * @description 根据父类代码查询
     * @datetime 2024-04-20 14:57:12
     */
    List<TypeVo> findByParentCodeList(TypeVo row);
}